<?php
/**
 * @package		orcamento	
 * @desc		Componente voltado to listar produtor e entreoutros
 * @author	    Lucas Emmanoel Araujo Machado (lucasemmanoel@gmail.com).
 * @since		2011-04-10	
 * @abstract	Controlador do Componente
 */

// Não permite o acesso direto ao arquivo.
defined( '_JEXEC' ) or die( 'Restricted access' );

class OrcamentosControllerProduto extends OrcamentosController
{
	var $link = 'index.php?option=com_orcamento&view=produtos';
	/*
	 * Constructor (registra tarefas adicionais ao método)
	 */
	function __construct( )
	{
		parent::__construct( );
		// Registra task add como edit
		$this->registerTask( 'add'  , 	'edit' );
	}

	/**
	 * Exibe o formulário para adição/edição de dados.
	 */
	function edit( )
	{
		JRequest::setVar( 'view', 'produto' );
		JRequest::setVar( 'layout', 'form'  );
		JRequest::setVar('hidemainmenu', 1);
		parent::display( );
	}

	/**
	 * Salva um registro (e direciona para a página principal).
	 */
	function save( )
	{
		// Check for request forgeries
		JRequest::checkToken() or jexit( 'Invalid Token' );

		// Recupera o model
		$model = $this->getModel( 'produto' );
		
		$data = JRequest::get( 'post' );
		$imagem = JRequest::getVar('imagem', null, 'files', 'array');
		
		// Verifica se o model esta armazenando os dados
		if ( $model->store( $data, $imagem ) )
		{
			$msg = JText::_( 'Informações registradas' );
		}
		else
		{
			// Retorna o erro gerado no model
			JError::raiseWarning( 100, 'Erro ao salvar as informações. ' . $model->getError( ) );
		}
		$link = $this->link;
		$this->setRedirect( $link, $msg );
	}

	/**
	 * Remove registro(s).
	 */
	function remove( )
	{
		// Recupera o model
		$model = $this->getModel( 'produto' );

		// Verifica se o model esta removendo os dados
		if( $model->delete( ) )
		{
			$msg = JText::_( 'Registro(s) removido(s) com sucesso!' );
		}
		else
		{
			// Retorna o erro gerado no model
			JError::raiseWarning( 100, 'Erro ao deletar as informações. ' . $model->getError( ) );
		}
		$link = $this->link;
		$this->setRedirect( $link , $msg );
	}

	/**
	 * Cancela a edição de um registro.
	 */
	function cancel( )
	{
		JError::raiseNotice( 100, JText::_( 'Operação cancelada' ) );
		$link = $this->link;
		$this->setRedirect( $link );
	}
}
